package main;


import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.Trigger;
import org.quartz.impl.StdSchedulerFactory;
import quartz.CollectMetricQuartz;

import static org.quartz.JobBuilder.newJob;
import static org.quartz.SimpleScheduleBuilder.simpleSchedule;
import static org.quartz.TriggerBuilder.newTrigger;


/**
 * @author Administrator
 */
public class AgentMain {
    public static void main(String[] args) {

        try {
            //创建scheduler，从factory中获取一个scheduler
            Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();

            //定义一个Trigger,设置执行的契机
            //定义name/group，trigger的名字和group，用来识别
            //一旦加入scheduler，立即生效
            //使用SimpleSchedule,每隔60秒执行一次,一直执行，奔腾到老不停歇
            //
            Trigger trigger = newTrigger().withIdentity("iotdbTrigger", "triggerGroup")
                    .startNow()
                    .withSchedule(simpleSchedule()
                            .withIntervalInSeconds(60)
                            .repeatForever())
                    .build();

            //定义一个JobDetail,执行的内容
            //定义Job类为HelloQuartz类，这是真正的执行逻辑所在
            //定义name/group,jobdetail的名字和组，他在scheduler中唯一标识
            //定义属性
            JobDetail job = newJob(CollectMetricQuartz.class)
                    .withIdentity("iotdbjob", "jobGroup")
                    .usingJobData("name", "quartz")
                    .build();

            //加入这个调度
            scheduler.scheduleJob(job, trigger);

            //启动之
            scheduler.start();

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
